Apache POI লাইব্রেরি Word ডকুমেন্ট ম্যানিপুলেশন এবং প্রক্রিয়াজাতকরণের জন্য ব্যবহৃত একটি শক্তিশালী টুল, যা DOC এবং DOCX ফরম্যাটের ডকুমেন্ট তৈরি, সম্পাদনা, এবং পড়তে ব্যবহৃত হয়। তবে, যদি আপনি Apache POI ব্যবহার করার সময় কিছু অতিরিক্ত ফিচার, কার্যকারিতা বা ইন্টিগ্রেশন চান, তবে Third-party Extensions এবং Libraries ব্যবহার করতে পারেন। এই ধরনের extensions বা libraries আপনাকে আরও শক্তিশালী ডকুমেন্ট ম্যানিপুলেশন, কনভার্সন, বা বিভিন্ন ফরম্যাটের মধ্যে কমপ্যাটিবিলিটি আনতে সাহায্য করতে পারে।
এই লেখায়, আমরা কিছু জনপ্রিয় থার্ড-পার্টি লাইব্রেরি এবং এক্সটেনশন দেখব যা Apache POI এর সাথে ইন্টিগ্রেট করা যেতে পারে।
iText একটি ওপেন সোর্স পিডিএফ লাইব্রেরি যা পিডিএফ ডকুমেন্ট তৈরি, পাঠ এবং সম্পাদনার জন্য ব্যবহৃত হয়। Apache POI এবং iText একত্রে ব্যবহার করলে আপনি Word ডকুমেন্ট থেকে পিডিএফ ফাইল তৈরি করতে পারেন।
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfWriter;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class PoiToPdfConversion {
public static void main(String[] args) throws IOException {
// DOCX ফাইল লোড করা
XWPFDocument document = new XWPFDocument(new FileInputStream("document.docx"));
// iText পিডিএফ ডকুমেন্ট তৈরি করা
Document pdfDoc = new Document();
PdfWriter.getInstance(pdfDoc, new FileOutputStream("output.pdf"));
pdfDoc.open();
// DOCX এর প্যারাগ্রাফ পড়ে পিডিএফে লিখা
for (XWPFParagraph paragraph : document.getParagraphs()) {
pdfDoc.add(new com.itextpdf.text.Paragraph(paragraph.getText()));
}
pdfDoc.close();
}
}
এই কোডে, একটি DOCX ফাইল থেকে সমস্ত প্যারাগ্রাফ পড়া হচ্ছে এবং iText লাইব্রেরি ব্যবহার করে PDF ফাইল তৈরি করা হচ্ছে।
Aspose.Words একটি শক্তিশালী লাইব্রেরি যা Word ডকুমেন্ট তৈরি, সম্পাদনা এবং কনভার্ট করার জন্য ব্যবহৃত হয়। এটি Apache POI এর মতো একটি ওপেন সোর্স লাইব্রেরি নয়, তবে একটি পেশাদার লাইসেন্সধারী টুল। Aspose.Words আপনাকে DOCX ফরম্যাটে আরও উন্নত বৈশিষ্ট্য প্রদান করতে পারে, যেমন মেটাডেটা, অ্যাডভান্সড টেবিল এবং গ্রাফিক্স পরিচালনা।
আপনি Apache POI এবং Aspose.Words একত্রে ব্যবহার করে Word ডকুমেন্টের উন্নত বৈশিষ্ট্যগুলি পরিচালনা করতে পারেন।
import com.aspose.words.Document;
import java.io.IOException;
public class AsposeIntegrationExample {
public static void main(String[] args) throws IOException {
// Aspose.Words ডকুমেন্ট লোড করা
Document doc = new Document("document.docx");
// নতুন ফাইল হিসেবে সেভ করা
doc.save("converted_document.docx");
}
}
এখানে, Aspose.Words লাইব্রেরি দিয়ে DOCX ফাইল লোড এবং সেভ করা হচ্ছে।
Apache FOP (Formatting Objects Processor) একটি ওপেন সোর্স সফটওয়্যার যা XML ডকুমেন্টকে PDF ফরম্যাটে রেন্ডার করার জন্য ব্যবহৃত হয়। আপনি যদি Apache POI দিয়ে DOCX ডকুমেন্ট তৈরি করতে চান এবং পরে তা FOP ব্যবহার করে PDF তে কনভার্ট করতে চান, তবে এটি সম্ভব।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;
import org.apache.fop.apps.XMLInputSource;
import org.apache.fop.apps.Driver;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class PoiToFopConversion {
public static void main(String[] args) throws Exception {
// DOCX ফাইল লোড করা
XWPFDocument document = new XWPFDocument(new FileInputStream("document.docx"));
// FOP প্রক্রিয়া তৈরি করা
FopFactory fopFactory = FopFactory.newInstance(new File("fop.xconf"));
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, new FileOutputStream("output.pdf"));
// FOP ড্রাইভার দিয়ে কনভার্ট করা
Driver driver = new Driver();
driver.setOutputStream(new FileOutputStream("output.pdf"));
driver.setContentHandler(fop.getDefaultHandler());
for (XWPFParagraph paragraph : document.getParagraphs()) {
// DOCX প্যারাগ্রাফ থেকে XML এর মাধ্যমে ফরম্যাট করা
String xmlContent = "<text>" + paragraph.getText() + "</text>";
driver.process(new XMLInputSource(new StringReader(xmlContent)));
}
}
}
এখানে, Apache POI দিয়ে DOCX ফাইল থেকে প্যারাগ্রাফ নিয়ে Apache FOP দিয়ে PDF তে কনভার্ট করা হচ্ছে।
Freemarker একটি জনপ্রিয় টেমপ্লেট ইঞ্জিন যা Java প্রোগ্রামিং ভাষায় ডাইনামিক কন্টেন্ট তৈরি করতে ব্যবহৃত হয়। আপনি Apache POI এর সাথে Freemarker ব্যবহার করে Word ডকুমেন্টের জন্য ডাইনামিক কনটেন্ট তৈরি করতে পারেন।
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
public class PoiFreemarkerExample {
public static void main(String[] args) throws IOException, TemplateException {
// Freemarker কনফিগারেশন তৈরি করা
Configuration cfg = new Configuration(Configuration.VERSION_2_3_30);
cfg.setDirectoryForTemplateLoading(new File("templates"));
// টেমপ্লেট লোড করা
Template template = cfg.getTemplate("template.ftl");
// ডাইনামিক ডেটা
Map<String, Object> dataModel = new HashMap<>();
dataModel.put("name", "John Doe");
// Freemarker টেমপ্লেট প্রসেস করা
StringWriter stringWriter = new StringWriter();
template.process(dataModel, stringWriter);
// DOCX ডকুমেন্ট তৈরি করা
XWPFDocument document = new XWPFDocument();
XWPFParagraph paragraph = document.createParagraph();
paragraph.createRun().setText(stringWriter.toString());
// DOCX ফাইল সেভ করা
try (FileOutputStream out = new FileOutputStream("output.docx")) {
document.write(out);
}
}
}
এখানে, Freemarker টেমপ্লেট ব্যবহার করে ডাইনামিক ডেটা দিয়ে DOCX ফাইল তৈরি করা হচ্ছে।
Apache POI লাইব্রেরির সাথে third-party extensions এবং libraries একত্রে ব্যবহার করে আপনি Word ডকুমেন্টের কার্যকারিতা বাড়াতে পারেন। বিভিন্ন লাইব্রেরি যেমন iText, Aspose.Words, Apache FOP, এবং Freemarker আপনাকে DOCX ফাইলের কনভার্টন, উন্নত কনটেন্ট ম্যানিপুলেশন, ডাইনামিক ডেটা ইনজেকশন, এবং পিডিএফ/এক্সএমএল কনভার্সন করতে সহায়তা করতে পারে।
এই ধরনের integrations আপনার ডকুমেন্ট ম্যানিপুলেশনের ক্ষমতাকে ব্যাপকভাবে সম্প্রসারিত করতে সক্ষম, বিশেষ করে যখন আপনার বিভিন্ন ফরম্যাটে আউ
টপুট প্রয়োজন হয় বা বিশেষ কনটেন্ট ম্যানিপুলেশন দরকার হয়।
common.read_more